package day16.generic;

import java.util.ArrayList;
import java.util.List;

/**
 * @author success
 * @version 1.0
 * @description:本类用来演示:泛型
 * @date 2019/8/5 0005
 */
public class GenericDemo {
    public static void main(String[] args) {
        //泛型是JDK5.0引入的.JCF - 类型安全的JCF
        //泛型仅仅在编译期间有效,在运行期间将会被"擦除".
        List<Integer> list01 = new ArrayList<Integer>();

        //获取class实例 - 获取对象的运行时类型
        System.out.println(list01.getClass());
                                              //class java.util.ArrayList
        List<Long> list02 = new ArrayList<Long>(); //class java.util.ArrayList
        System.out.println(list02.getClass());
        System.out.println(list01.getClass() == list02.getClass());//true


        Number n = new Integer(10);
        Number n2 = new Long(11L);

        //不允许多态的原因 - 运行期间,泛型将会被擦除
        //List<Number> nList = new ArrayList<Integer>();//error
        //List<Number> n2List = new ArrayList<Long>();//error
    }
}
